﻿//using System;
//using System.Collections.Generic;
//using System.Text;
//using T.FAS.Runtime.Base.Entity;

//namespace T.FAS.Runtime.StateMachine.SPI
//{
//    /// <summary>
//    /// 规则定义
//    /// </summary>
//    public class TRule
//    {
//        /// <summary>
//        /// 主键id
//        /// </summary>
//        public string ID { get; set; }

//        /// <summary>
//        /// 所属状态机ID
//        /// </summary>
//        public string StateMachineID { get; set; }

//        /// <summary>
//        /// 规则标识
//        /// </summary>
//        public string Key { get; set; }

//        /// <summary>
//        /// 规则名称
//        /// </summary>
//        public string Name { get; set; }

//        /// <summary>
//        /// 规则描述
//        /// </summary>
//        public string Description { get; set; }

//        /// <summary>
//        /// 规则作用的CDO的主节点的Element.ID
//        /// </summary>
//        public string Target { get; set; }

//        /// <summary>
//        /// 0:System, 1:Expression
//        /// </summary>
//        public RuleType RuleType { get; set; }

//        /// <summary>
//        ///  RuleType:System时，RuleInfo存储系统预置的默认规则标识（Frozen,Match,Required）;
//        ///  RuleType:Expression时，RuleInfo存储表达式规则的内容，该表达式执行结果返回Boolean类型的值"
//        /// </summary>
//        public string RuleInfo { get; set; }

//        /// <summary>
//        /// 当RuleType:Expression时，存储表达式的Json内容，供表达式SDK使用
//        /// </summary>
//        public string RuleInfoJson { get; set; }

//        /// <summary>
//        /// 0:无前置条件，1:有前置条件
//        /// </summary>
//        public bool HasCondition { get; set; }

//        /// <summary>
//        /// 前置条件表达式内容
//        /// </summary>
//        public string ConditionExpression { get; set; }

//        /// <summary>
//        /// 前置条件表达式内容Json内容，供表达式SDK使用
//        /// </summary>
//        public string ConditionExpressionJson { get; set; }

//        /// <summary>
//        /// 前置条件表达式参数Json内容
//        /// </summary>
//        public string ParameterString { get; set; }

//        /// <summary>
//        /// 排序
//        /// </summary>
//        public int Sort { get; set; }

//        /// <summary>
//        /// Rule参数信息
//        /// </summary>
//        public Dictionary<string, object> Paramters { get; set; }

//        /// <summary>
//        /// 备用字段
//        /// </summary>
//        public string Ext1 { get; set; }

//        /// <summary>
//        /// 备用字段
//        /// </summary>
//        public string Ext2 { get; set; }

//        /// <summary>
//        /// 备用字段
//        /// </summary>
//        public string Ext3 { get; set; }

//        /// <summary>
//        /// 创建人
//        /// </summary>
//        public string Creator { get; set; }

//        /// <summary>
//        /// 创建时间
//        /// </summary>        
//        public DateTime CreateTime { get; set; }

//        /// <summary>
//        /// 最后修改人
//        /// </summary>
//        public string LastModifier { get; set; }

//        /// <summary>
//        /// 最后修改时间
//        /// </summary>        
//        public DateTime LastModifyTime { get; set; }
//    }

//    public enum RuleType
//    {
//        System,
//        Expression
//    }
//}
